package cn.joybreeze.controller;


import cn.joybreeze.common.result.R;
import cn.joybreeze.common.vo.QuestionnaireQueryVO;
import cn.joybreeze.model.QuestionnaireDO;
import cn.joybreeze.service.QuestionnaireService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author kjwaa
 * @since 2021-09-15
 */
@RestController
    @RequestMapping("/questionnaire-do")
public class QuestionnaireController {

    @Autowired
    QuestionnaireService questionnaireService;

    /**
     * 增加问卷记录
     * @param qv
     * @return
     */
    @PostMapping("/add")
    public R addQuestionnaire(@RequestBody QuestionnaireQueryVO qv){
        QuestionnaireDO qd = new QuestionnaireDO();
        BeanUtils.copyProperties(qv, qd);
        boolean isSuccess = questionnaireService.saveOrUpdate(qd);
        if(isSuccess) return R.ok();
        return R.error();
    }

    /**
     * 删除问卷信息
     * @param id
     * @return
     */
    @DeleteMapping("/delete/{id}")
    public R deleteQuestionnaire(@PathVariable int id){
        boolean isSuccess = questionnaireService.removeById(id);
        if(isSuccess) return R.ok();
        return R.error();
    }

    /**
     * 更新问卷信息
     * @param id
     * @param qv
     * @return
     */
    @PostMapping("/update/{id}")
    public R updateQuestionnaire(@PathVariable int id, @RequestBody QuestionnaireQueryVO qv){
        QuestionnaireDO qd = questionnaireService.getById(id);
        BeanUtils.copyProperties(qv, qd);
        boolean isSuccess = questionnaireService.saveOrUpdate(qd);
        if(isSuccess) return R.ok();
        return R.error();
    }

    /**
     * 根据id获取问卷信息
     * @param id
     * @return
     */
    @GetMapping("/get/{id}")
    public R getQuestionnaireById(@PathVariable int id){
        QuestionnaireDO questionnaireDO = questionnaireService.getById(id);
        if(questionnaireDO == null) return R.error();
        return R.ok(questionnaireDO);
    }

    /**
     * 获取问卷列表，并分页
     * @param qv
     * @return
     */
    @GetMapping("/list")
    public R getQuestionnaireList(QuestionnaireQueryVO qv){
        Page<QuestionnaireDO> page = new Page<>();
        page.setSize(qv.getSize());
        page.setCurrent(qv.getCurrent());
        // 条件查询
        //QueryWrapper<QuestionnaireDO> queryWrapper = new QueryWrapper<>();
        //queryWrapper.like("questionnaireTitle", qv.getQuestionnaireTitle());
        Page<QuestionnaireDO> doPage = questionnaireService.page(page);
        return R.ok(doPage);
    }


}
